In personal communication systems (PCS), such as the Personal Handy Phone (PHP) system in use in Japan, voice data is often processed by a "voice-band" process (typically 300 to 3300 Hz, as, for example, the human voice) using an Adaptive Differential Pulse Code Modulation (ADPCM) technique. ADPCM is widely utilized in telephony and is usually implemented in accordance with well known standards such as the Consultative Committee in International Telegraphy and Telephony (CCITT) Standard G.721. In general, sampled voice data is passed through an ADPCM algorithm wherein the digital voice data is compressed. The data output from the ADPCM algorithm is known as a sample, or more generally, as an ADPCM sample. According to the CCITT Standard G.721, a byte of digital voice data is compressed into a 4-bit sample. Although, the present invention will be described by way of example in which samples are defined as having 4-bits, it should be understood that the invention should not be limited by the example. More particularly, the invention should not be limited to personal communication systems in which ADPCM is employed. The invention is directed to any digital communication system in which digital data may be arranged in groups having any predetermined number of bits. These groups will be generally referred to as samples.
In existing communications systems the samples are organized in blocks of data with various overhead and control bits, which are transmitted together contiguously in time. Among the overhead bits transmitted in the block are a sequence of redundant bits which may be used for error deletion and/or correction. These bits are known as "parity" bits and are typically derived from the samples and other overhead data which form the block of data. CRC-16 is one well known standard used to generate these parity bits.
Typically, parity bits are used simply for error detection. For example, a block diagram of a typical PCS using ADPCM is shown in FIG. 1. Digitized voice data is provided as an input to the ADPCM encoder 2. The ADPCM encoder 2 compresses the digitized voice data into a block of ADPCM samples which are output to the CRC transmit processor 4 and a multiplexer 6. The CRC transmit processor 4 processes the ADPCM samples to form the parity bits. The multiplexer 6 then outputs the block of ADPCM samples and the corresponding parity bits to the modulator 8, which modulates and up converts the data for transmission via RF transmitter 10.
On the receiving end, an RF antenna 12 receives the transmitted block of data and outputs it to the demodulator 14. The demodulator 14 down converts and demodulates the received data. The down-converted data is then output to the demultiplexer 16 which outputs the down-converted data to the CRC receive processor 18 and selectively outputs the down-converted data representing the block of ADPCM samples to the ADPCM decoder 20. The ADPCM decoder 20 then processes the ADPCM sample to recover the digitized voice waveform.
With simple error detection, the presence of errors in a received block of data is determined by forming a syndrome at the receiver, i.e. generating parity bits from the received block of data and then comparing the received parity bits with those generated from the received block of data. When the syndrome is zero (i.e., the parity bits generated are the same as the parity bits received), the slot contents are assumed to be error free and the samples are processed to recover the digitized voice data. When the syndrome is non-zero (i.e., at least some of the parity bits generated by the CRC receive processor 18 differ from the parity bits received), the received block of data is discarded and the ADPCM decoder output is muted by opening switch 21 for a period of time equivalent to the duration of the transmission. This process is graphically shown in FIG. 2.
In particular, FIG. 2 shows the sampled voice waveform 22 which is processed into a block of ADPCM samples and parity bits collectively referred to as transmission blocks 24. The transmission blocks 24 are transmitted and received by a PCS receiving unit. Errors 30 may be detected in some of the received blocks such as blocks 26 and 28 shown in FIG. 2. Therefore, only block 25 in which no errors are detected is processed by the ADPCM decoder.
Due to interference and fading effects on the radio channel, a fraction of the slots experience transmission errors, so the simple error detection method results in gaps which cause break-up of the received speech as shown by the output voice waveform 32 in FIG. 2. If the parity bits were merely ignored and all of the received data was processed the reconstructed voice waveform would contain frequent "pops" and "clicks" and other objectional artifacts due to the processing of samples containing bit errors.
In an effort to mitigate this degradation, forward error correction (FEC) or other advanced signal processing concepts could be used to potentially improve the quality of the received voice band signals during periods of fading and interference. For example, a block diagram of a personal communications system using ADPCM and FEC coding is shown in FIG. 3 and a graphical representation of the waveform processing using the FEC coding is shown in FIG. 4. The ADPCM encoder 2 and decoder 20, modulator 8, transmitter 10, antenna 12, and demodulator 14 perform the same functions as described above in connection with FIG. 1. The CRC processors 4 and 18 are replaced by the FEC processors 34 and 36 respectively. The need for the multiplexer 6 and demultiplexer 16 may be eliminated when using FEC coding because either the entire data block is coded so that parity bits are not required or the FEC processors internally multiplex and demultiplex the data with error correction bits as appropriate. FEC coding not only provides the capability of detecting errors, but also provides a limited capability for correcting some of the detected errors. When an error is detected and can not be corrected by the FEC receive processor 36, switch 38 is opened to prevent the samples received in the active block to be processed by the ADPCM decoder 20.
FIG. 4 is a graphical depiction of voice waveform processing using an FEC coding technique. As shown in FIG. 4, the sampled voice waveform 22 is processed into transmission blocks 40 to which FEC coding has been applied to the samples to be transmitted. The FEC receive processor may detect errors 30 in some of the received blocks, for example blocks 44 and 46. When no errors are detected in a received block, such as block 42, that block is output to the ADPCM decoder and the output voice waveform 32 corresponding to that block can be reconstructed. However, when errors are detected, the FEC receive processor may be capable of correcting some of the detected errors as is well known. Block 46, for example, is shown to contain only correctable errors such that those errors are corrected to produce a substantially error-free block 48. Thus, once detected errors have been corrected, block 48 can be processed to reconstruct the voice waveform 32. Where the detected errors cannot be corrected by the FEC receive processor, as in the case of block 44, that block of data is then muted to produce a period of silence for the duration of the transmitted block as shown in FIG. 4.
Although FEC techniques may result in a reduction of the number of muted blocks of voice data, blocks of data containing uncorrectable errors still produce periods of silence in the reconstructed voice waveform. Moreover, undetected errors still may produce objectionable distortion when the data having errors is processed.
To combat fading and interference some personal communication systems may employ two or more antennas. Each antenna would receive a different standing wave pattern of the transmitted data. The PCS receiver attempts to select the antenna with the stronger signal path. This technique is generally referred to as space diversity.
A block diagram of a PCS employing space diversity is shown in FIG. 5. For exemplary purposes, the system shown in FIG. 5 uses CRC processing. However, it should be understood that FEC coding could also be used in a diversity system. The functions performed by the ADPCM encoder 2, CRC transmit processor 4, multiplexer 6, modulator 8, and transmitter 10 are substantially the same as described above in connection with FIG. 1. In the diversity system shown in FIG. 5, two antennas 12 and 13 each receive the transmitted blocks. Demodulators 14 and 15 down-convert and demodulate the received blocks of data. The demodulated data from each receive chain (i.e., antenna 12 and demodulator 14 represent one receive chain and antenna 13 and demodulator 15 represent a second receive chain), is output to the respective CRC receive processors 18 and 19. As described above, the CRC receive processors 18 and 19 generate a new set of parity bits derived from the ADPCM samples received and then create a syndrome by comparing the generated parity bits with the received parity bits. These syndromes which will be referred to as diversity syndromes are output from the respective CRC processors 18 and 19 to the CRC selection logic processor 60. The CRC selection logic processor 60 operatively controls switches 62 and 64 based on the syndromes so that the ADPCM samples from one of the demultiplexers 16 or 18 is processed by the ADPCM decoder 20 or muted to produce the periods of silence shown in FIG. 2.
FIG. 6 is a flow diagram representing the processing steps performed by the CRC selection logic processor 60. The CRC selection logic processor checks the diversity syndromes to determine whether any errors were detected in the block of data received by each of the receive chains by determining whether the diversity syndromes are zero as shown at step 70. If both syndromes are zero, then the CRC selection logic processor sets switch 62 to allow the ADPCM samples from either demultiplexer to be output to the ADPCM decoder at step 72. If the first syndrome (i.e., corresponding to the block of data received by antenna 12, demodulator 14, and demultiplexer 16) is zero and the second syndrome (i.e., corresponding to the block of data received by antenna 13, demodulator 15, and demultiplexer 17) is non-zero as determined at step 74, the CRC selection logic processor sets the switch 62 so that the ADPCM samples from demultiplexer 16 are output to the ADPCM decoder at step 76. If the CRC selection logic processor determines at step 78 that the second syndrome is zero and the first syndrome is non-zero, then switch 62 is set to permit the ADPCM samples from demultiplexer 17 to be output to the ADPCM processor. When both syndromes are non-zero, the CRC selection logic processor sets switch 64 so that any samples output from either demultiplexer are muted in that they are not processed by the ADPCM decoder thereby creating a period of silence for the duration of that block.
It should be understood that by adding additional diversity channels to the personal communication system receiver, the number of periods of silence may be reduced. However, such diversity does not eliminate these lengthy periods of silence which significantly degrade the subjective quality of the reconstructed voice waveform. Moreover, undetected errors still create undesirable "pops" and "clicks" in the reconstructed voice waveform since all of the samples in a block of data are processed when no errors are detected.
Therefore, there is a need to provide coding and decoding techniques capable of improving the subjective quality of the reconstructed voice waveform in a wireless communication system while still eliminating the so-called "pops" and "click" resulting from the processing of data that contains errors.